
/*
 * Copyright 2002-2008 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*
 *版权所有2002-2008原作者。
 *
 *根据Apache许可证2.0版（“许可证”）获得许可；
 *除非符合许可证，否则不得使用此文件。
 *您可以在以下地址获取许可证副本：
 *
 *      https://www.apache.org/licenses/LICENSE-2.0
 *
 *除非适用法律要求或书面同意，软件
 *根据许可证分发的内容是按“原样”分发的，
 *无任何明示或暗示的保证或条件。
 *有关管理权限和
 *许可证下的限制。
 */

package org.springframework.aop;

/**
 * Tag interface for throws advice.
 *
 * <p>There are not any methods on this interface, as methods are invoked by
 * reflection. Implementing classes must implement methods of the form:
 *
 * <pre class="code">void afterThrowing([Method, args, target], ThrowableSubclass);</pre>
 *
 * <p>Some examples of valid methods would be:
 *
 * <pre class="code">public void afterThrowing(Exception ex)</pre>
 * <pre class="code">public void afterThrowing(RemoteException)</pre>
 * <pre class="code">public void afterThrowing(Method method, Object[] args, Object target, Exception ex)</pre>
 * <pre class="code">public void afterThrowing(Method method, Object[] args, Object target, ServletException ex)</pre>
 *
 * The first three arguments are optional, and only useful if we want further
 * information about the joinpoint, as in AspectJ <b>after-throwing</b> advice.
 *
 * <p><b>Note:</b> If a throws-advice method throws an exception itself, it will
 * override the original exception (i.e. change the exception thrown to the user).
 * The overriding exception will typically be a RuntimeException; this is compatible
 * with any method signature. However, if a throws-advice method throws a checked
 * exception, it will have to match the declared exceptions of the target method
 * and is hence to some degree coupled to specific target method signatures.
 * <b>Do not throw an undeclared checked exception that is incompatible with
 * the target method's signature!</b>
 *
 * @author Rod Johnson
 * @author Juergen Hoeller
 * @see AfterReturningAdvice
 * @see MethodBeforeAdvice
 */
/**
 *throws建议的标记接口。
 *
 *＜p＞此接口上没有任何方法，因为方法由
 *反射。实现类必须实现以下形式的方法：
 *
 *<pre-class=“code”>void afterThrowing（[Method，args，target]，ThrowableSubclass）</前>
 *
 *＜p＞有效方法的一些示例如下：
 *
 *<pre-class=“code”>抛出后公共无效（异常ex）</pre>
 *<pre class=“code”>引发后的公共void（RemoteException）</pre>
 *<pre-class=“code”>public void afterThroung（方法方法，对象[]参数，对象目标，异常ex）</pre>
 *<pre-class=“code”>public void afterThroung（方法方法，对象[]参数，对象目标，ServletException ex）</pre>
 *
 *前三个参数是可选的，只有在我们需要进一步的时候才有用
 *关于连接点的信息，如抛出</b>建议后的AspectJ<b>。
 *
 *<p><b>注意：</b>如果抛出建议方法本身抛出异常，它将
 *重写原始异常（即更改向用户抛出的异常）。
 *重写异常通常是RuntimeException；这是兼容的
 *具有任何方法签名。但是，如果throws通知方法抛出检查
 *异常，它必须与目标方法的声明异常相匹配
 *并且因此在某种程度上耦合到特定的目标方法签名。
 *<b>不要抛出与不兼容的未声明的已检查异常
 *目标方法的签名</b>
 *
 *@作者Rod Johnson
 *@作者Juergen Hoeller
 *@参见AfterReturningAdvice
 *@参见MethodBeforeAdvice
 */
public interface ThrowsAdvice extends AfterAdvice {

}
